<?php
/**
 * --------------------------------------------------------------------
 * MCore精简框架
 * 作者：阿枫，QQ：52037872，Email：support@mdeve.com
 * --------------------------------------------------------------------
 *
 * SVN revision information:
 * @version $Revision: 1 $:
 * @author  $Author: zy $:
 * @date      $Date: 2017-03-10 21:12:21 +0800 (星期五, 10 三月 2017) $:
 */

/* 用户操作抽象类，为了方便以后对接其他用户系统 */
abstract class _user_interface {

    /**
     * 判断是否登录
     *
     * @return bool
     */
    abstract public function is_login();

    /**
     * 退出登陆
     *
     * @return bool
     */
    abstract function logout();


    /**
     * 登陆操作
     *
     * @param $user 用户名
     * @param $pass 密码(md5)
     * @param $verifycode 登陆验证码
     * @param string $referer 登陆后跳转地址
     * @param bool $save_status 是否保存登陆（不保存则退出浏览器失效，保存的话cookies保存一个月）
     * @return bool
     */
    abstract function login($user, $pass, $referer = "/", $save_status = true);

    /**
     * 获取用户头像
     *
     * @param int $uid 如果$uid为空，返回自己的头像
     */
    abstract function get_avatar($uid = 0);


    /**
     * 获取用户详细资料，包括所有扩展字段
     *
     * @param int $uid 获取指定$uid用户资料
     */
    abstract function get_userinfo_by_uid($uid);

    /**
     * 按用户名获取用户详细资料
     *
     * @param $username 用户名
     * @return array|bool 如果获取失败返回 false, 成功返回 array
     */
    abstract function get_userinfo_by_username($username);


    /**
     * 设置用户扩展字段
     *
     * @param $uid
     * @param $meta_key
     * @param $meta_value
     * @param string $meta_flag
     * @return bool
     */
    abstract function set_user_meta($uid, $meta_key, $meta_value, $meta_flag = "");

}